SELECT语句中如果存在WHERE子句,则对WHERE子句进行分析。首先根据AND关键字进行分割,之后对每个分割后的子句进行分析。对于分割后的子句,如果是以下情况:
column = expression column > expression column >= expression column < expression column <= expression expression = column expression > column expression >= column expression < column expression <= column column IN (expression-list) column IN (subquery) column IS NULL那么这个子句是可以使用索引进行查询优化的。
CREATE INDEX idx_ex1 ON ex1(a, b, c, d, e,..., y, z);那么如果索引中的初始列(列a, b等)出现在分割后的子句中,那么索引就会被启用,但是不能间断的使用索引列。如:WHERE子句中没有列c的约束,那么只有列a,b是可以使用索引的,其余的索引列都将无法正常使用。
执行步骤和程序实现如下: